package br.com.ppc.modelo;// default package
// Generated 06/07/2011 14:08:13 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Grupo generated by hbm2java
 */
@Entity
@Table(name = "grupo", catalog = "ppc")
public class Grupo implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4550793261363865764L;
	private Integer idGrupo;
	private Subordem subordem;
	private Reino reino;
	private Ordem ordem;
	private Subfamilia subfamilia;
	private Subclasse subclasse;
	private Epiteto epiteto;
	private Familia familia;
	private Genero genero;
	private Filo filo;
	private Especie especie;
	private Classe classe;
	private Set<Especime> especimes = new HashSet<Especime>(0);

	public Grupo() {
	}

	public Grupo(Reino reino, Ordem ordem, Familia familia, Filo filo,
			Classe classe) {
		this.reino = reino;
		this.ordem = ordem;
		this.familia = familia;
		this.filo = filo;
		this.classe = classe;
	}

	public Grupo(Subordem subordem, Reino reino, Ordem ordem,
			Subfamilia subfamilia, Subclasse subclasse, Epiteto epiteto,
			Familia familia, Genero genero, Filo filo, Especie especie,
			Classe classe, Set<Especime> especimes) {
		this.subordem = subordem;
		this.reino = reino;
		this.ordem = ordem;
		this.subfamilia = subfamilia;
		this.subclasse = subclasse;
		this.epiteto = epiteto;
		this.familia = familia;
		this.genero = genero;
		this.filo = filo;
		this.especie = especie;
		this.classe = classe;
		this.especimes = especimes;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idGrupo", unique = true, nullable = false)
	public Integer getIdGrupo() {
		return this.idGrupo;
	}

	public void setIdGrupo(Integer idGrupo) {
		this.idGrupo = idGrupo;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idSubOrdem")
	public Subordem getSubordem() {
		return this.subordem;
	}

	public void setSubordem(Subordem subordem) {
		this.subordem = subordem;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idReino", nullable = false)
	public Reino getReino() {
		return this.reino;
	}

	public void setReino(Reino reino) {
		this.reino = reino;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idOrdem", nullable = false)
	public Ordem getOrdem() {
		return this.ordem;
	}

	public void setOrdem(Ordem ordem) {
		this.ordem = ordem;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idSubFamilia")
	public Subfamilia getSubfamilia() {
		return this.subfamilia;
	}

	public void setSubfamilia(Subfamilia subfamilia) {
		this.subfamilia = subfamilia;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idSubClasse")
	public Subclasse getSubclasse() {
		return this.subclasse;
	}

	public void setSubclasse(Subclasse subclasse) {
		this.subclasse = subclasse;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idEpiteto")
	public Epiteto getEpiteto() {
		return this.epiteto;
	}

	public void setEpiteto(Epiteto epiteto) {
		this.epiteto = epiteto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idFamilia", nullable = false)
	public Familia getFamilia() {
		return this.familia;
	}

	public void setFamilia(Familia familia) {
		this.familia = familia;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idGenero")
	public Genero getGenero() {
		return this.genero;
	}

	public void setGenero(Genero genero) {
		this.genero = genero;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idFilo", nullable = false)
	public Filo getFilo() {
		return this.filo;
	}

	public void setFilo(Filo filo) {
		this.filo = filo;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idEspecie")
	public Especie getEspecie() {
		return this.especie;
	}

	public void setEspecie(Especie especie) {
		this.especie = especie;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idClasse", nullable = false)
	public Classe getClasse() {
		return this.classe;
	}

	public void setClasse(Classe classe) {
		this.classe = classe;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "grupo")
	public Set<Especime> getEspecimes() {
		return this.especimes;
	}

	public void setEspecimes(Set<Especime> especimes) {
		this.especimes = especimes;
	}

}
